#include <iostream>
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>

// int signo: 进程收到了哪一个信号的编号，会传递给handler方法
void handler(int signo)
{
    std::cout << "我这个进程: " << getpid() << ", 抓到了一个信号: " << signo << std::endl;
    // 我没有在这个函数里终止进程哦！
}

int main()
{
    // 修改我自己的进程的信号处理动作
    // signal(SIGINT/*2*/, SIG_IGN); // 忽略对2号信号的处理
    // signal(SIGINT/*2*/, SIG_DFL); // 忽略对2号信号的处理

    // signal注册，只需要注册一次。未来如果收不到该信号，对应的动作，就不会执行
    //signal(2, handler); // signal {... handler(2)  ...}
    if(fork() > 0)
        exit(0);

    while (true)
    {
        std::cout << "我是一个进程: " << getpid() << std::endl;
        sleep(1);
    }
}